package com.nexus.plugin.tenant;

/**
 * 租户上下文持有类（基于ThreadLocal）
 * 用于在请求线程中传递当前租户ID
 *
 * @Date 2025/7/25 11:15
 * @Author luzhengning
 **/
public class TenantContextHolder {

    // 线程本地变量：存储当前租户ID
    private static final ThreadLocal<Long> TENANT_CONTEXT = new ThreadLocal<>();

    /**
     * 获取当前租户ID
     */
    public static Long getTenantId() {
        return TENANT_CONTEXT.get();
    }

    /**
     * 设置当前租户ID
     */
    public static void setTenantId(Long tenantId) {
        TENANT_CONTEXT.set(tenantId);
    }

    /**
     * 清除当前租户ID（防止线程复用导致的问题）
     */
    public static void clear() {
        TENANT_CONTEXT.remove();
    }
}